package main.java;
import java.util.Vector;


public class Mazo_productosImpl implements Mazo_productos {
	
	private Vector<C_producto> productos;
	
	private Vector<C_producto> descartes;
	
	public Mazo_productosImpl(){
		productos=new Vector<C_producto>();
		descartes=new Vector<C_producto>();
	}

	
	
	@Override
	//Elige un producto al azar del mazo de productos
	public C_producto sacar_prod() {
		C_producto elegido;
		int indice=(int)(Math.random()*productos.size());
		elegido=productos.remove(indice);
		if (productos.size()==0)  //si al sacar carta ya no quedan
			add_descartes();	  //pasa los descartes al mazo principak
		return elegido;
	}
	
	@Override
	//Añade un producto al mazo de descartes
	public void descartar(C_producto descarte) {
		descartes.add(descarte);

	}
	public void descartar(Vector<C_producto> descarte){
		descartes.addAll(descarte);
	}

	@Override
	//Añade un producto al mazo de productos
	public void add_producto(C_producto prod) {
		productos.add(prod);

	}
	//Devuelve todos los productos descartados al mazo de productos
	public void add_descartes(){
		productos.addAll(descartes);
		descartes.removeAllElements();
	}
	
	//devuelve un vector con tres panes negros
	public Vector<C_producto> coger_panes (){		
		Vector <C_producto> panes=new Vector<C_producto>();
		C_producto pan;
		int i,indice;
		for (i=0;i<3;i++){
			do{
				indice=(int)(Math.random()*productos.size());
				pan=productos.get(indice);
			}while (pan.get_id()!=1);
			panes.add(productos.remove(indice));
		}
		return panes;
	}
	public void preparar(){
        for(int i=0;i<10;i++){
            switch(i){
            case 0:{
                for(int j=1;j<6;j++){
                    productos.add(new C_productoImpl(i,j));
                }break;
            }
            case 1:{
                for(int j=0;j<6;j++){
                    productos.add(new C_productoImpl(i,j));
                    productos.add(new C_productoImpl(i,j));
                    productos.add(new C_productoImpl(i,j));
                    productos.add(new C_productoImpl(i,j));
                }break;
               
            }case 2:{
                    productos.add(new C_productoImpl(i,0));
                    productos.add(new C_productoImpl(i,4));
                    productos.add(new C_productoImpl(i,5));
                    break;
            }
            case 3:{
                for(int j=0;j<5;j++){
                    productos.add(new C_productoImpl(i,j));
                    productos.add(new C_productoImpl(i,j));
                }
                productos.add(new C_productoImpl(i,5));
                break;
            }case 4:{
                for(int j=0;j<6;j++){
                    productos.add(new C_productoImpl(i,j));
                    productos.add(new C_productoImpl(i,j));
                }
                productos.add(new C_productoImpl(i,1));
                productos.add(new C_productoImpl(i,2));
                productos.add(new C_productoImpl(i,3));
                productos.add(new C_productoImpl(i,5));
                break;
            }case 5:{
                for(int j=0;j<6;j++){
                    productos.add(new C_productoImpl(i,j));
                }
                break;
            }case 6:{
                for(int j=0;j<6;j++){
                    productos.add(new C_productoImpl(i,j));
                }
                break;
            }case 7:{
                for(int j=0;j<6;j++){
                    productos.add(new C_productoImpl(i,j));
                    productos.add(new C_productoImpl(i,j));
                }
                break;
            }case 8:{
                for(int j=0;j<6;j++){
                    productos.add(new C_productoImpl(i,j));
                }
                productos.add(new C_productoImpl(i,3));
                productos.add(new C_productoImpl(i,4));
                productos.add(new C_productoImpl(i,5));
                break;
            }case 9:{
                for(int j=0;j<6;j++){
                    productos.add(new C_productoImpl(i,j));
                }
            }
        }
	}		
}
}
